package com.py.credit.dao;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.py.credit.entity.Column;
import com.py.credit.entity.DataResult;
import com.py.credit.entity.Dept;
import com.py.credit.entity.StatisticsNumResult;
import com.py.credit.entity.Table;
import com.py.credit.entity.TableResult;
import com.py.credit.entity.common.InspectRule;
import com.py.framework.core.common.Page;

public interface TableDao {
    /**
     * This method was generated by MyBatis Generator. This method corresponds
     * to the database table t_dc_cubes
     *
     * @mbg.generated Thu Mar 15 14:55:37 CST 2018
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * This method was generated by MyBatis Generator. This method corresponds
     * to the database table t_dc_cubes
     *
     * @mbg.generated Thu Mar 15 14:55:37 CST 2018
     */
    int insert(Table record);

    /**
     * 功能描述: 根据资源id获取表信息
     *
     * @param id 资源id
     * @return 资源信息
     * @author YaoS
     * @date 19/4/10 10:08
     */
    Table selectByPrimaryKey(Integer id);

    int getTableIdByResource(String resourceId);

    /**
     * This method was generated by MyBatis Generator. This method corresponds
     * to the database table t_dc_cubes
     *
     * @mbg.generated Thu Mar 15 14:55:37 CST 2018
     */
    int updateByPrimaryKeySelective(Table record);

    /**
     * This method was generated by MyBatis Generator. This method corresponds
     * to the database table t_dc_cubes
     *
     * @mbg.generated Thu Mar 15 14:55:37 CST 2018
     */
    int updateByPrimaryKey(Table record);

    /**
     * 分页条件查询列表
     *
     * @param kId
     * @param deptId
     * @param columns
     * @param additionalColumns
     * @param page
     * @param conditions
     * @return
     */
    public List<Map<String, Object>> selectByConditionForPage(@Param(value = "kId") String kId,
                                                              @Param(value = "deptId") String deptId, @Param(value = "columns") List<String> columns,
                                                              @Param(value = "additionalColumns") String[] additionalColumns, @Param(value = "page") Page page,
                                                              @Param(value = "conditions") List<String> conditions, @Param(value = "type") String type);

    /**
     * 添加表,部门,库关系记录
     *
     * @param kId
     * @param deptId
     * @param tableId
     * @param i
     */
    void addDeptCube(@Param(value = "kId") String kId, @Param(value = "deptId") String deptId,
                     @Param(value = "tableId") int tableId, @Param(value = "sort") int sort);

    /**
     * @param columns
     * @param id
     */
    void addColunmCube(@Param(value = "list") List<Column> list, @Param(value = "tableId") int tableId);

    /**
     * @param createTableSql
     */
    void operate(@Param(value = "sql") String sql);

    List<LinkedHashMap> selectTableInfo(@Param(value = "ids") List<Integer> ids,
                                        @Param(value = "rootId") Integer rootId);

    /**
     * @param tableId
     * @param deptId
     * @return
     */
    Table select(@Param(value = "kId") String kId, @Param(value = "tableId") int tableId,
                 @Param(value = "deptId") String deptId);

    void delCubeMetric(@Param(value = "list") List<Column> delColumns, @Param(value = "tableId") int tableId);

    // void delDeptCube(@Param(value = "kId") String kId, @Param(value =
    // "deptId") String deptId,
    // @Param(value = "tableId") int tableId);

    void alter(String alterSql);

    List<Map<String, Object>> selectSharingResouceByConditionForPage(@Param(value = "kId") String kId,
                                                                     @Param(value = "deptId") String deptId, @Param(value = "columns") List<String> showColumns,
                                                                     @Param(value = "additionalColumns") String[] additionalColumns, @Param(value = "page") Page page,
                                                                     @Param(value = "conditions") List<String> conditions);

    int selectMaxSerialNumberByDeptId(@Param(value = "deptId") long deptId);

    void addSerialNumber(@Param(value = "serialNumber") int serialNumber, @Param(value = "deptId") long deptId);

    List<Table> selectRecords(@Param(value = "list") List<Table> tableList, @Param(value = "tybm") List<Table> tybm);

    List<DataResult> selectData(@Param(value = "tableName") String tableName,
                                @Param(value = "list") List<Column> columns, @Param(value = "tybm") String tybm);

    List<Map<String, Object>> selectRecordsByConditionForPage(
    		@Param(value = "recordIds") List<String> recordIds,
    		@Param(value = "tableName") String tableName,@Param(value = "deptId") String deptId,
                                                              @Param(value = "columns") List<String> showColumns,
                                                              @Param(value = "additionalColumns") String[] additionalColumns,
                                                              @Param(value = "conditions") List<String> conditions, @Param(value = "page") Page page);

    /**
     * 功能描述: 根据主键id查表数据
     *
     * @param tableName   表资源名
     * @param id          表资源名
     * @param showColumns 展示字段
     * @return
     * @author YaoS
     * @date 19/1/21 18:51
     */
    Map<String, Object> selectRecordsById(@Param(value = "tableName") String tableName, @Param(value = "id") Integer id,
                                          @Param(value = "list") List<String> showColumns);

    List<Map<String, Object>> selectRecordsForXypjForPage(@Param(value = "tybm") String tybm,
                                                          @Param(value = "tableName") String tableName, @Param(value = "columns") List<String> showColumns,
                                                          @Param(value = "additionalColumns") String[] additionalColumns,
                                                          @Param(value = "conditions") List<String> conditions, @Param(value = "page") Page page);

    List<Map<String, Object>> selectCommonResource(@Param(value = "rootId") String rootId);

    int selectTableColumn(@Param(value = "metricCode") String metricCode, @Param(value = "tableId") Integer tableId);

    void del(@Param(value = "list") String[] tableIds);

    /**
     * @param addColumns
     * @param tableId
     */
    void addColunmCubeInstance(@Param(value = "list") List<Column> addColumns,
                               @Param(value = "tableId") Integer tableId);

    /**
     * @param tableIds
     */
    // void delDeptCube(@Param(value = "list") String[] tableIds);

    /**
     * @param tableIds
     */
    void delTableColumn(@Param(value = "list") String[] tableIds);

    /**
     * @param tableIds
     */
    void delTableColumnInstance(@Param(value = "list") String[] tableIds);

    /**
     * @param ids
     */
    void delColumn(@Param(value = "list") String[] tableIds);

    /**
     * 功能描述: 删除数据表中的错误数据
     *
     * @param tableName 表资源名
     * @param recordId  资源id
     * @return
     * @author YaoS
     * @date 19/1/21 20:49
     */
    void deleteData(@Param(value = "tableName") String tableName, @Param(value = "recordId") Integer recordId);

    /**
     * @param kId
     * @param deptId
     * @param tableId
     * @return
     */
    int alreadyDistributeNum(@Param(value = "kId") String kId, @Param(value = "deptId") String deptId,
                             @Param(value = "tableId") int tableId);

    /**
     * @param kId
     * @param tableId
     * @return
     */
    Table selectSharingTable(@Param(value = "kId") String kId, @Param(value = "tableId") int tableId);

    /**
     * @param tableId
     * @param kId
     */
    void delDistributeCube(@Param(value = "tableId") int tableId, @Param(value = "kId") String kId);

    List<Dept> selectAlreadyDistributeRecord(@Param(value = "tableId") int tableId, @Param(value = "kId") String kId);

    /**
     * @param kId
     * @param deptId
     * @param tableId
     * @param order
     */
    void updateDeptCubeSort(@Param(value = "kId") String kId, @Param(value = "deptId") String deptId,
                            @Param(value = "tableId") Integer tableId, @Param(value = "order") int order);

    List<Map<String, Object>> selectSharingResourceBy(@Param(value = "kId") String kId,
                                                      @Param(value = "type") String type, @Param(value = "deptId") String deptId);

    List<Map<String, Object>> selectCubeDept(@Param(value = "kId") String kId, @Param(value = "deptId") String deptId);

    /**
     * @param repeatCheck 是否验重 Y:是 N:否
     * @param userInfo    用户信息实体
     * @param id          表ID
     * @Function 更新重复校验字段状态
     * @FileName TableDao.java
     * @MethodName updateRepeatCheck
     * @Date 2018年9月10日 下午3:48:31
     * @Author Min DongXv
     */
    public void updateRepeatCheck(@Param(value = "repeatCheck") String repeatCheck,
                                  @Param(value = "userName") String userName, @Param(value = "id") Integer id);

    int selectByResourceId(@Param(value = "resourceId") String resourceId);

    List<Table> selectResources(@Param(value = "kId") String kId, @Param(value = "deptId") String deptId,
                                @Param(value = "name") String name);

    List<InspectRule> selectResourceColumnRulesForPage(@Param(value = "version") Integer version,
                                                       @Param(value = "tableId") String tableId, @Param(value = "ruleName") String ruleName,
                                                       @Param(value = "page") Page page);

    List<InspectRule> selectResourceTableRulesForPage(@Param(value = "version") Integer version,
                                                      @Param(value = "tableId") String tableId, @Param(value = "ruleName") String ruleName,
                                                      @Param(value = "page") Page page);

    void delDeptCube(@Param(value = "list") String[] tableIds, @Param(value = "kId") String kId,
                     @Param(value = "deptId") String deptId);

    /**
     * 功能描述: 异议处理查询待审核的数据
     *
     * @param tybm              企业统一编码
     * @param tyshxydm          统一社会信用代码
     * @param tableId           表id
     * @param tableName         表名
     * @param showColumns       展示字段
     * @param additionalColumns 新增的查询列
     * @param conditions        企业统一编码
     * @return List 查询结果
     * @author YaoS
     * @date 19/1/25 18:00
     */
    List<Map<String, Object>> selectRecordsForPage(@Param(value = "tybm") String tybm,
                                                   @Param(value = "tyshxydm") String tyshxydm,
                                                   @Param(value = "tableName") String tableName,
                                                   @Param(value = "tableId") String tableId,
                                                   @Param(value = "columns") List<String> showColumns,
                                                   @Param(value = "additionalColumns") String[] additionalColumns,
                                                   @Param(value = "conditions") List<String> conditions, @Param(value = "page") Page page);


    /**
     * 功能描述: 获取所有表list
     *
     * @param
     * @return
     * @author YaoS
     * @date 19/4/16 18:06
     */
    List<Map<String, Object>> getAllTable();

	List<Map<String, String>> getTables( @Param(value = "deptId")List<String> deptId,@Param(value = "infoId")String infoId,  @Param(value = "tableIds")List<String> tableIds);

	List<StatisticsNumResult> getStatistics(@Param(value = "startTime")String startTime, 
			@Param(value = "endTime")String endTime, 
			@Param(value = "deptId")Long deptId, 
			@Param(value = "tableList")List<Map<String, String>> tableList, @Param(value = "infoId")String infoId);

	List<Map<String, Object>> getDeptList(@Param(value = "deptIds")List<String> deptIds);

	List<StatisticsNumResult> getTotalStatistics(@Param(value = "startTime")String startTime, 
			@Param(value = "endTime")String endTime, 
				@Param(value = "deptList")List<Map<String, Object>> deptList, @Param(value = "tableList")List<Map<String, String>> tableList);

	String getleasterInfoId();

	TableResult getTableColumns(@Param(value = "tableId")String tableId,@Param(value = "infoId")String infoId);

	List<Map<String, Object>> getTableDatas(@Param(value = "showColumns")String showColumns,@Param(value = "tableName")String tableName, @Param(value = "deptId")String deptId,@Param(value = "startTime")String startTime, 
			@Param(value = "endTime")String endTime);

	List<StatisticsNumResult> getEmptyStatistics(@Param(value = "tableList")List<Map<String, String>> tableList);

	
	/**
	 * @Title: getshowColumns
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param type
	 * @param @return    设定文件
	 * @return List<String>    返回类型
	 * @throws
	*/
	
	List<String> getshowColumns(@Param(value="type")String type);

	
	/**
	 * @Title: exportSgsCfTotalByCondition
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param deptId
	 * @param @param conditions
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getSgsCfTotalForPage(
			@Param(value="deptIds")List<String> deptIds,
			@Param(value="conditions")StringBuilder conditions,
			@Param(value="startTime")String startTime, 
			@Param(value="endTime")String endTime,
			@Param(value="page")Page page,
			@Param(value="jdrqStart")String jdrqStart,
			@Param(value="jdrqEnd")String jdrqEnd);

	
	/**
	 * @param endTime 
	 * @param startTime 
	 * @param conditions2 
	 * @param deptId 
	 * @Title: exportSgsXkTotalByCondition
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param deptId
	 * @param @param conditions
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getSgsXkTotalForPage(  
			@Param(value="deptIds")List<String> deptIds,
			@Param(value="conditions")StringBuilder conditions, 
			@Param(value="startTime")String startTime, 
			@Param(value="endTime")String endTime,
			@Param(value="page")Page page,
			@Param(value="jdrqStart")String jdrqStart,
			@Param(value="jdrqEnd")String jdrqEnd);

	
	/**
	 * @param infoId 
	 * @Title: getSgsXkDept
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getSgsXkDept( @Param(value="infoId")String infoId);

	
	/**
	 * @Title: getSgsCfDept
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param infoId
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getSgsCfDept(@Param(value="infoId")String infoId);

	
	/**
	 * @Title: selectXzxkData
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param tableName
	 * @param @param columns
	 * @param @param tybm
	 * @param @return    设定文件
	 * @return List<DataResult>    返回类型
	 * @throws
	*/
	
	List<DataResult> selectXzxkData(@Param(value = "tableName") String tableName,
            @Param(value = "list") List<Column> columns, @Param(value = "tybm") String tybm);

	
	/**
	 * @Title: selectXzcfData
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param tableName
	 * @param @param columns
	 * @param @param tybm
	 * @param @return    设定文件
	 * @return List<DataResult>    返回类型
	 * @throws
	*/
	
	List<DataResult> selectXzcfData(@Param(value = "tableName") String tableName,
            @Param(value = "list") List<Column> columns, @Param(value = "tybm") String tybm);

	
	/**
	 * @Title: getListByTableIdForPage
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param string
	 * @param @param deptId
	 * @param @param page
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getListByTableIdForPage(
			@Param(value = "xmmc") String xmmc,
			@Param(value = "tablename") String tablename,
			@Param(value = "deptIds") List<String> deptIds,
			@Param(value = "page") Page page);

	
	/**
	 * @param infoId 
	 * @Title: getDeptByTableId
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param string
	 * @param @param tableId
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getDeptByTableId(
			@Param(value = "tableId") String tableId, @Param(value = "infoId")String infoId);


	
	/**
	 * @Title: getXkDataListForPage
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param deptId
	 * @param @param advanceSearchSql
	 * @param @param startTime
	 * @param @param endTime
	 * @param @param page
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getXkDataListForPage(
			@Param(value="recordIds")List<String> recordIds,
			@Param(value="deptIds")List<String> deptIds, 
			@Param(value="conditions")StringBuilder conditions,
			@Param(value="startTime")String startTime,
			@Param(value="endTime")String endTime, 
			@Param(value="page")Page page,
			@Param(value="jdrqStart")String jdrqStart,
			@Param(value="jdrqEnd")String jdrqEnd);

	
	/**
	 * @Title: getCfDataListlForPage
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param deptId
	 * @param @param advanceSearchSql
	 * @param @param startTime
	 * @param @param endTime
	 * @param @param page
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getCfDataListlForPage(
			@Param(value="recordIds")List<String> recordIds,
			@Param(value="deptIds")List<String> deptIds, 
			@Param(value="conditions")StringBuilder conditions,
			@Param(value="startTime")String startTime,
			@Param(value="endTime")String endTime, 
			@Param(value="page")Page page,
			@Param(value="jdrqStart")String jdrqStart,
			@Param(value="jdrqEnd")String jdrqEnd);

	

	List<Map<String, Object>> getXkDataList(
			@Param(value="recordIds")List<String> recordIds,
			@Param(value="deptIds")List<String> deptIds, 
			@Param(value="conditions")StringBuilder conditions,
			@Param(value="startTime")String startTime,
			@Param(value="endTime")String endTime,
			@Param(value="jdrqStart")String jdrqStart,
			@Param(value="jdrqEnd")String jdrqEnd);

	
	List<Map<String, Object>> getCfDataList(
			@Param(value="recordIds")List<String> recordIds,
			@Param(value="deptIds")List<String> deptIds, 
			@Param(value="conditions")StringBuilder conditions,
			@Param(value="startTime")String startTime,
			@Param(value="endTime")String endTime,
			@Param(value="jdrqStart")String jdrqStart,
			@Param(value="jdrqEnd")String jdrqEnd);

	
	/**
	 * @Title: getDataByTableIdForPage
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param xmmc
	 * @param @param string
	 * @param @param xzxdrlb
	 * @param @param sxyj
	 * @param @param deptId
	 * @param @param page
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getDataByTableIdForPage(
			@Param(value="xmmc")String xmmc,
			@Param(value="tablename")String tablename, 
			@Param(value="xzxdrlb")String xzxdrlb, 
			@Param(value="sdyj")String sdyj,
			@Param(value="deptIds")List<String> deptIds,
			@Param(value="page")Page page);

	
	/**
	 * @Title: getOtherTotalByTableIdForPage
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param string
	 * @param @param advanceSearchSql
	 * @param @param page
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getOtherTotalByTableIdForPage(
			@Param(value="tablename")String tablename, 
			@Param(value="conditions")StringBuilder conditions,
			@Param(value="page")Page page);

	
	/**
	 * @Title: getCftzListForPage
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param page
	 * @param @param type
	 * @param @param deptId
	 * @param @param startTime
	 * @param @param endTime
	 * @param @param jdrqStart
	 * @param @param jdrqEnd
	 * @param @param wsh
	 * @param @param xzxdrmc
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getCftzListForPage(
			@Param(value="page")Page page,
			
			@Param(value="deptIds")List<String> deptIds,
			@Param(value="startTime")String startTime,
			@Param(value="endTime")String endTime,
			@Param(value="jdrqStart")String jdrqStart,
			@Param(value="jdrqEnd")String jdrqEnd,
			@Param(value="wsh")String wsh, 
			@Param(value="xzxdrmc")String xzxdrmc);

	
	/**
	 * @Title: getXktzListForPage
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param page
	 * @param @param deptId
	 * @param @param startTime
	 * @param @param endTime
	 * @param @param jdrqStart
	 * @param @param jdrqEnd
	 * @param @param wsh
	 * @param @param xzxdrmc
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	
	List<Map<String, Object>> getXktzListForPage(
			@Param(value="page")Page page,
			
			@Param(value="deptIds")List<String> deptIds,
			@Param(value="startTime")String startTime,
			@Param(value="endTime")String endTime,
			@Param(value="jdrqStart")String jdrqStart,
			@Param(value="jdrqEnd")String jdrqEnd,
			@Param(value="wsh")String wsh, 
			@Param(value="xzxdrmc")String xzxdrmc);
	
	/**
	 * @Title: getCftzListForPage
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param page
	 * @param @param type
	 * @param @param deptId
	 * @param @param startTime
	 * @param @param endTime
	 * @param @param jdrqStart
	 * @param @param jdrqEnd
	 * @param @param wsh
	 * @param @param xzxdrmc
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getCftzList(
			@Param(value="page")Page page,
			
			@Param(value="deptIds")List<String> deptIds,
			@Param(value="startTime")String startTime,
			@Param(value="endTime")String endTime,
			@Param(value="jdrqStart")String jdrqStart,
			@Param(value="jdrqEnd")String jdrqEnd,
			@Param(value="wsh")String wsh, 
			@Param(value="xzxdrmc")String xzxdrmc,
			@Param(value="recordIds")List<String> recordIds);

	
	/**
	 * @Title: getXktzListForPage
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param page
	 * @param @param deptId
	 * @param @param startTime
	 * @param @param endTime
	 * @param @param jdrqStart
	 * @param @param jdrqEnd
	 * @param @param wsh
	 * @param @param xzxdrmc
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	
	List<Map<String, Object>> getXktzList(
			@Param(value="page")Page page,
			
			@Param(value="deptIds")List<String> deptIds,
			@Param(value="startTime")String startTime,
			@Param(value="endTime")String endTime,
			@Param(value="jdrqStart")String jdrqStart,
			@Param(value="jdrqEnd")String jdrqEnd,
			@Param(value="wsh")String wsh, 
			@Param(value="xzxdrmc")String xzxdrmc,
			@Param(value="recordIds")List<String> recordIds);


	
	/**
	 * @Title: getXkCblListForPage
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param page
	 * @param @param deptId
	 * @param @param startTime
	 * @param @param endTime
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getXkCblListForPage(
			@Param(value="page")Page page,
			@Param(value="deptIds")List<String> deptIds, 
			@Param(value="startTime")String startTime, 
			@Param(value="endTime")	String endTime);

	
	/**
	 * @Title: getCfCblListForPage
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param page
	 * @param @param deptId
	 * @param @param startTime
	 * @param @param endTime
	 * @param @return    设定文件
	 * @return List<Map<String,Object>>    返回类型
	 * @throws
	*/
	
	List<Map<String, Object>> getCfCblListForPage(
			@Param(value="page")Page page,
			@Param(value="deptIds")List<String> deptIds, 
			@Param(value="startTime")String startTime, 
			@Param(value="endTime")	String endTime);

	List<Map<String, Object>> selectLyByConditionForPage(@Param(value = "kId") String kId,
                                                              @Param(value = "deptId") String deptId, @Param(value = "columns") List<String> columns,
                                                              @Param(value = "additionalColumns") String[] additionalColumns, @Param(value = "page") Page page,
                                                              @Param(value = "conditions") List<String> conditions, @Param(value = "type") String type);

   
}